<?php

class Datatype_Generic {

	var $sName;
	var $xValue;

	function Datatype_Generic ( $sName, $xValue ) {
		$this->sName  = $sName;
		$this->SetValue( $xValue ); 
	}

	function GetName() {
		return $this->sName;	
	}

	function GetValue() {
		return $this->xValue;
	}
	
	function GetStringValue() {
		return $this->GetValue();	
	}

	function _IsValidValue( $xValue ) {
		return true;
	}

	function SetValue( $xValue ) {
		if ( $this->_IsValidValue( $xValue ) ) {
			$this->xValue = $xValue;
			return true;
		}
		return false;
	}

	function GetType() {
		return substr( get_class( $this ), strlen( 'Datatype_' ) );
	}
	
	function GetXmlElement() {
		$oElement = new XmlElement( $this->GetName(), $this->GetStringValue() );
		$oElement->AddAttribute( 'type', $this->GetType() );
		return $oElement;
	}

	// TODO: WIP
	// TODO: Move this into a new class structure...
		
	function GetHtml( $sNamePrefix ) {
		return '<p>' . $this->GetName() . ' <input id="'. $sNamePrefix . '.' . $this->GetName().'" type="text" value="'.$this->GetStringValue().'"/></p>';
	}
}

require_once( 'Classes/Xml/XmlElement.php' );

?>
